using System;
using System.IO;
using System.Text;

namespace SSDS
{
    public class HelpFile : TextFile
    {
        public const string HELP_FILE_PATH = "HELP.TXT";

        public HelpFile(System.Windows.Forms.IWin32Window parent) : base(parent, HELP_FILE_PATH)
        {
            CreateHelpFile();
            WriteFile();
        }

        public void CreateHelpFile()
        {
            Lines.Add(" File Prompt #1");
            Lines.Add("      Enter a file to use '?.txt' or select one");
            Lines.Add("      of the previously selected files 1-20");
            Lines.Add(" Option Prompt #2");
            Lines.Add("      Display pictures, Enter text, Search text");
            Lines.Add("      Help, Append text, Screen Saver, Set program");
            Lines.Add("      control options etc etc etc");
            Lines.Add("");
            Lines.Add("        ***** Prompt #2 Options *****");
            Lines.Add(" C context search / most common search option");
            Lines.Add(" CC context search / more speed combination of 'S' and 'C' search");
            Lines.Add(" E Enter more notes to the end of the current text file");
            Lines.Add(" F Flash search display option, all lines displayed, stopping on matches");
            Lines.Add(" Q Single line search matching case sensitive (see 'S')");
            Lines.Add(" S single line match display Lower & Uppercase sensitive");
            Lines.Add("   Both Q And S are now the same If search is numeric then no uppercase shift etc");
            Lines.Add(" Y Display the last screen of data ie Yesterday or Last data");
            Lines.Add(" CH change to text file (uses wordpad for edits)");
            Lines.Add(" M Minimize screen (allows start of other desktop processes)");
            Lines.Add(" X Exit to file name prompt");
            Lines.Add(" P1 Photo display forces (STRETCH) to fit to screen");
            Lines.Add(" P2 Photo display without a fit to screen option (NORMAL)");
            Lines.Add(" P  Photo display at the default display (stretch or normal)");
            Lines.Add(" TT Screen saver timer delay ie 'tt0' 'tt5' 'tt10' 'tt.33");
            Lines.Add(" SS screen saver display ie SSdog river flower");
            Lines.Add(" WW screen saver display with search criteria ie flood/oldie/ice ");
            Lines.Add(" MERGE to merge.txt so all files can be searched at once ie frm");
            Lines.Add(" DIR files directory with date and size to directory.txt");
            Lines.Add(" DIRDATES use with GF below to list date and size of selected files");
            Lines.Add(" GF Get File, used to capture un-catalogued pictures (use NORAND for MP3 VIP");
            Lines.Add(" CP Copy picture option, searches catalogued pictures for copy / export to another device or folder");
            Lines.Add(" Z Paste / Append contents of clipboard text to end of current file");
            Lines.Add(" HELP display this help.txt info");
            Lines.Add("  ---------------       some lesser used options below ");
            Lines.Add(" RRR search and replace option for masive text changes");
            Lines.Add(" RAND / NORAND Random display of picture files in SS WW P1 or P2");
            Lines.Add(" THUMbnail for preview /sample of video or audio using time setting tt10 tt15 etc");
            Lines.Add(" ELAP elapsed time to display after each mp3 or mpg file ");
            Lines.Add(" video / novideo turn on and off the option for video display (avi decompressor) must be installed");
            Lines.Add(" PAUSE / PA to allow for continual text display pausing for what is in the TT delay");
            Lines.Add(" NS No Show option ie 'nsx-rated my-ex jerk'");
            Lines.Add(" CCC change to display options in option1.txt for larger font, color changes etc");
            Lines.Add(" XXX option to extract all displayed data to an alternate text file");
            Lines.Add(" SKIP Don't display ie skip lines when match found ie 'skipmy-email'");
            Lines.Add(" CRIPT Encript current text file using crip.txt as control file");
            Lines.Add(" DECRIPT Does reversal of the cript option");
            Lines.Add(" MYSTUFF Allows for on-line de-encription of an encripted text file");
            Lines.Add(" LL Line length, sets line length before wrap ie 'LL100' 'LL' sets back to original length");
            Lines.Add(" SHOWPOS Displays the line length at the end of each line");
            Lines.Add(" SHOWASC Displays ascii value of last 10 characters on line");
            Lines.Add(" EMAIL Reads e-mail formatted files and skips lots of control info");
            Lines.Add(" IMPORT Takes e-mails from netscape and outlook files");
            Lines.Add(" T Same as 'S' except that data also put to an extract file");
            Lines.Add(" D Same as 'C' except that data also put to an extract file");
            Lines.Add(" R Same as 'Q' except that data also put to an extract file");
            Lines.Add(" CROP Creates extract file with line wraps ie 'CROP100'");
            Lines.Add(" QQQ Similar to RRR used to line-feed carriage-returns from line matches");
            Lines.Add(" VV Load clipboard with text following 'VVrepetitive data'");
            Lines.Add(" VVV Loads secondary clipboard with data 'VVVinsert-this'");
            Lines.Add(" GGG yet another clip area load");
            Lines.Add(" SC Screen Capture delay (delays prompt box by 5 seconds) so alt/print-screen sequence can capture data");
            Lines.Add(" PC Picture count  (used with 'CP' to assign picture sequence number ie 'PC20' results in pict20.jpg ");
            Lines.Add(" DISC displays username and computer name & OS version");
            Lines.Add(" HH Sets the hilite_this element (very handy to hi-lite other info CMD(31))");
            Lines.Add(" ");
            Lines.Add(" HL Changes the Append_start element for display");
            Lines.Add(" HLL Changes the Append_end element for hi-liting");
            Lines.Add(" DETAIL NODETAIL changes cmd(56) ");
            Lines.Add("");
            Lines.Add("        ***** Search Prompt #3 Options *****");
            Lines.Add("V or H will load clipboard data just like Ctrl V");
            Lines.Add("D for todays date to be the search");
            Lines.Add("DX for yesterday date for search but no 01 workie");
            Lines.Add("otherwise the text search strings seperated by a =/");
            Lines.Add("");
            Lines.Add("       ***** End of Screen #4 Prompt Options  *****");
            Lines.Add(" P Previous for previous picture or previous match if text search");
            Lines.Add(" PP Previous Picture passed to Browser Netscape or Explorer");
            Lines.Add("     allows for a picture print etc  ");
            Lines.Add(" B Back / previous page when in text search display");
            Lines.Add(" V Same as Back moves one page before current match");
            Lines.Add(" ");
            Lines.Add("       ***** Detail line options and controls *****");
            Lines.Add(" WAIT=    Over-ride wait time on a line by line basis");
            Lines.Add(" THUMB==  Partial play using time in display seconds");
            Lines.Add(" DOSHOW   Over-ride any noshow");
            Lines.Add(" START==  Set the start point for a Movie or Music file");
            Lines.Add(" FIT==    Set the photo display to fit-to-screen");
            Lines.Add(" REG==    Display the photo without fit-to-screen");
            Lines.Add(" ");
            Lines.Add("       ***** Command File Control Elements *****");
            Lines.Add(" CMD(1) Max_cnt lines per screen  ==34");
            Lines.Add(" CMD(2) Font.size text point size  ==12");
            Lines.Add(" CMD(3) Backcolor background color '3 for aqua'  ==3");
            Lines.Add(" CMD(4) Def_fore text color '15 for white' '12 for red' ==15");
            Lines.Add(" CMD(5) forecolor hi-lite color '14 for yellow' ==14");
            Lines.Add(" CMD(6) seperator '/' forward slash default search seperator ==/");
            Lines.Add(" CMD(7) dateno or dateyes for a date on every input line ==dateno");
            Lines.Add(" CMD(8) browser default Explorer / Netscape path ==c:\\windows\\explorer.exe");
            Lines.Add(" CMD(9) paint program 'mspaint' file path ==c:\\PROGRAM FILES\\ACCESSORIES\\MSPAINT.EXE");
            Lines.Add("CMD(10) text editor 'wordpad' is the default 'CH' option ==c:\\PROGRAM FILES\\ACCESSORIES\\WORDPAD.EXE");
            Lines.Add("CMD(11) files.txt list of opened files in accessed order ==files.txt");
            Lines.Add("CMD(12) search.txt list of recent search strings in order at search prompt ==search.txt");
            Lines.Add("CMD(13) mspub.exe executable program ?? ==10");
            Lines.Add("CMD(14) enterdateyes date on start of each text entry group 'E' option ==enterdateyes");
            Lines.Add("CMD(15) enddateyes date on end of each text entry group 'E' option ==exitdateyesno");
            Lines.Add("CMD(16) optional .exe ??? ==C:\\PROGRAM FILES\\Microsoft Office\\Office\\MSPUB.EXE");
            Lines.Add("CMD(17) xoffset for prompt box '11000' photo display semi-hide prompt box ==13000");
            Lines.Add("CMD(18) yoffset for prompt box '8500' photo display semi-hide prompt box ==10700");
            Lines.Add("CMD(19) replace.txt temporary file for change routines see '37'??? ==replace.txt");
            Lines.Add("CMD(20) C/p1/email ??? ==C");
            Lines.Add("CMD(21) line_len characters per line '82' default ==82");
            Lines.Add("CMD(22) context_lines '6' lines displayed before a 'C' context match ==16");
            Lines.Add("CMD(23) copy picture 'CP' default folder 'destination folder for copies' ==c:\\search\\tempfold\\");
            Lines.Add("CMD(24) ppaste allows for vvv to paste string 'xxx.c:\\family1\\scn000' ==xxx.c:\\family1\\scn000");
            Lines.Add("CMD(25) gpaste allows for ggg to paste string 'photo family gathering' etc == photo 1980 ");
            Lines.Add("CMD(26) 'photo' ss default ss_search element ==photo");
            Lines.Add("CMD(27) delay_sec for screen saver 'SS' option '4' seconds default ==4");
            Lines.Add("CMD(28) noshow element ie 'creep' 'nfg' 'my-x' etc for photo display skip photos ==noshow mpotj");
            Lines.Add("CMD(29) altcolor '10' default green, see element 31 which is displayed with this color ==10");
            Lines.Add("        handy to display critical elements ie xxx. is in 31 for demo how to use this ");
            Lines.Add("CMD(30) 'Y' unload project option required for Windows ME Y/N option ==Y");
            Lines.Add("CMD(31) hilite_this element 'XXX.' if this element exists hilite it with code in element 29 ==xxx.");
            Lines.Add("CMD(32) crip.txt encription file to use when 'mystuff' code  ==cript.txt");
            Lines.Add("CMD(33) D search default at search prompt entry 'D' for today etc ==D");
            Lines.Add("CMD(34) 5 context window 'before' see element 22 ???? ==5");
            Lines.Add("CMD(35) indir input directory for 'GF' get file load picture option ==c:\\");
            Lines.Add("CMD(36) file extension 'JPG' for 'GF' get file load picture type of picture ==JPG");
            Lines.Add("CMD(37) temp.txt 'see option 19' ==newphotos.txt");
            Lines.Add("CMD(38) stretch_img 'stretch/normal' 'yes' or 'no' P1 or P2 photo display option ==stretch");
            Lines.Add("CMD(39) autoredraw allows for screen refresh between sessions (slows down F flash display and others)==noautoredraw");
            Lines.Add("CMD(40) Allowable write drives ie A:\\ C:\\ ==A:\\ C:\\ ");
            Lines.Add("CMD(41) Option Prompt #2 if photo file default display P1 P2 WW ==P");
            Lines.Add("CMD(42) Option Prompt #2 if text file default display C S Q ==C");
            Lines.Add("CMD(43) browser default Explorer / Netscape path for NT==c:\\winnt\\explorer.exe");
            Lines.Add("CMD(44) text editor 'wordpad' is the default 'CH' for NT option ==c:\\PROGRAM FILES\\windows nt\\ACCESSORIES\\WORDPAD.EXE");
            Lines.Add("CMD(45) auto run program name ie SPECIAL ==SPECIAL");
            Lines.Add("CMD(46) auto run prompt #1 (file select) ==1");
            Lines.Add("CMD(47) auto run prompt #2 (search options) ==WW");
            Lines.Add("CMD(48) auto run prompt #3 (search string)==PHOTO");
            Lines.Add("CMD(49) RANDOM NORANDOM on photo search ==NORANDOM");
            Lines.Add("CMD(50) Show Merged file names In Caption Area (SHOWFILES) ==SHOWFILES");
            Lines.Add("CMD(51) avi file size x min (1050)==1084");
            Lines.Add("CMD(52) avi file size y min (775)==800");
            Lines.Add("CMD(53) video / novideo if avi installed (NOSHOWVIDEO)==SHOWVIDEO");
            Lines.Add("CMD(54) If recent files match show the duplicates or not (SHOWDUPS)==SHOWDUPS");
            Lines.Add("CMD(55) number of lines in context file to clear (see Cmd(22)) 00 or ==00");
            Lines.Add("CMD(56) display photo detail on pictures (set when GF and MP3) (PHOTO_DETAIL)==PHOTO_DETAIL");
            Lines.Add("CMD(57) time display on / off switch (SHOWTIME)==noSHOWTIME");
            Lines.Add("CMD(58) DEFAULT_TO_CD when this set the drive ie c:\\ will default to where it is running ie E:\\ F:\\==noDEFAULT_TO_CD");
            Lines.Add("CMD(59) Delay Timing change (should be 0.00) for mpeg movies==0.00");
            Lines.Add("CMD(60) Freeze delay time for mpeg movies & Photo_detail info==0.00");
            Lines.Add("CMD(61) Allow for set speed of playback==SETSPEED1000");
            Lines.Add("CMD(62) Slow Motion segment duration (ie .01667)==0.01668");
            Lines.Add("CMD(63) Show Elapsed time of video switch (slow motion only) (ie SHOWELAP)==noSHOWELAP");
            Lines.Add("CMD(64) Pad_time (thousandsands added when in slow motion)==30");
            Lines.Add("CMD(65) Random begin for video play RANDBEG etc ==noRANDBEG");
            Lines.Add("CMD(66) Interrupt video replay speed (ie 250) ==75");
            Lines.Add("CMD(67) Thumbnail on or off ie noTHUMB or THUMB ==THUMB");
            Lines.Add("CMD(68) Continue at end of file (WW) ie noEOF_STOP ==noEOF_STOP");
            Lines.Add("CMD(69) Continue after match found (P) ie noHIT_STOP ==noHIT_STOP");
            Lines.Add("CMD(70) if FOREGROUND then background job given focus & hi-lited ==noFOREGROUND");
            Lines.Add("CMD(71) Allow for input from batch file ie noBATCHFILE ==noBATCHFILE==BATCHFILE.TXT");
            Lines.Add("CMD(72) Allow for video pictures music play list noRESULTS.TXT ==noRESULTS.TXT");
            Lines.Add("CMD(73) Switch input file when Control.txt file changes see Cmd(46) noFILESWITCH ==noFILESWITCH");
            Lines.Add("CMD(74) End of file command file switch (re text searches mainly) noEOFCMD ==noEOFCMD==CHGFILE.TXT");
            Lines.Add("CMD(75) Do not allow for video interrupt on cd and dvd copies VIDEOSTOP ==VIDEOSTOP");
            Lines.Add("CMD(76) Line pause to create scrolling text noLINEPAUSE==1.5 ==noLINEPAUSE==0.65");
            Lines.Add("CMD(77) Character pause on print text display noCHARACTERPAUSE==.00333 ==noCHARACTERPAUSE==.0333");
            Lines.Add("CMD(78) Text file formats to allow during merge command TXT FRM HTM ==HTM, FRM, CLS, ");
            Lines.Add("new feature 09 june 2002 allow for 6 search strings up from 3 (hi-lites only 3)");
            Lines.Add("new feature 23 june 2002 allow for hi-lites of all 6 search strings");
            Lines.Add("new feature 20 july 2002 allow use of non writable cd demo (do not update files)");
            Lines.Add("new feature 27 july 2002 at photo continue prompt allow for . to display hidden prompt on screen");
            Lines.Add("new feature 10 august 2002 allow for prompt #2 to default ");
            Lines.Add("new feature 12 august 2002 allow for 'rand' at prompt #2 to randomly select pics in file    ");
            Lines.Add("new feature 25 august 2002 display elapsed time and character count on display");
            Lines.Add("new feature 26 august 2002 CC search uses 'S' search then regets with a 'P' previous sequence");
            Lines.Add("new feature 31 August 2002 if search data numeric don't do uppercase if alpha switch to uppercase for search");
            Lines.Add("new feature 05 October 2002 PAUSE / PA option allow for screen saver type display of text, stopping for TT on each screen");
            Lines.Add("new feature 12 October 2002 DEBPHO to debug the photo display on some computers");
            Lines.Add("new feature 30 November 2002 DISC now shows os version ie Windows 98 etc");
            Lines.Add("option change 05 December 2002 P1 & P2 just change image size P does single photo display");
            Lines.Add("new feature 09 December 2002 Cmd(49) RANDOM / NORANDOM store from run to run");
            Lines.Add("new feature 24 December 2002 Cmd(50) showfiles / noshowfiles in merged text files show file name where match found");
            Lines.Add("option change if program name matches Cmd(45) then change drive # to that of app.path");
            Lines.Add("Allow close of window during screen saver to unload form");
            Lines.Add("new feature 01 February 2003 allow for *.avi video play cmd(51) cmd(52)");
            Lines.Add("new feature 28 February 2003 enable skip if same file listed twice for play or display cmd(54)");
            Lines.Add("new feature 20 March 2003 context clear cmd(55) allow for centering of text on screen");
            Lines.Add("New Feature 22 March 2003 PHOTO_DETAIL text info along with pics see Cmd(56)");
            Lines.Add("New Feature 26 March 2003 version 1.03 & 1.02b switchable time display");
            Lines.Add("Hint: In random display mode, to view last 3 pictures add 6 blank lines to file");
            Lines.Add("New Feature 11 May 2003 ver=1.05 display *.mpg video files similar to *.avi");
            Lines.Add("New Feature 24 June 2003 ver=1.07 play mp3 audio files similar to above");
            Lines.Add("New Feature 13 July 2003 ver=1.07a ELAP for elapsed time display after mp3 and mpg files");
            Lines.Add("New Feature 19 July 2003 ver=1.07T THUMbnail at prompt #2 to just show or play short clips / previews /samples using tt time");
            Lines.Add("      Version 2.0 and greater ");
            Lines.Add("          START==10000 at prompt #2 to test various start points in a video or song");
            Lines.Add("          START==20000 on the search detail line, to change individual file start point");
            Lines.Add("          use START==????? and WAIT=??? to show / play mini-clips from anywhere in a file");
            Lines.Add("          ***start==1000 for those video files that just won't play ie.(wavie lines only)");
            Lines.Add("26 July 2003 default context display color to value in cmd(29) alternate color");
            Lines.Add("          minor bug fix related to wait time changing");
            Lines.Add("New Feature 03 August 2003 ver=2.2 allow for FIT== And REG== to determine regular or fit to screen similar to WAIT=");
            Lines.Add("New Feature 18 August 2003 THUMB== on detail line will force a short play based on delay seconds");
            Lines.Add("                           DOSHOW to over-ride any noshow settings (on detail line)");
            Lines.Add("Fix 09 September 2003 to allow for service pack 1 systems");
            Lines.Add("New Feature 24 September 2003 freeze=5 on a mpg video, after a wait=10 will hold the frame for display for 5 seconds");
            Lines.Add("New Feature 29 September 2003 cmd(59) element used to adjust delay time (between systems)");
            Lines.Add("New Feature 30 October 2003 cmd(61) element SETSPEED and speed=500 at prompt #2");
            Lines.Add("New Feature 16 November 2003 over-ride above speed on a line basis ie speed=250");
            Lines.Add("Fix 08 January 2004 replace SET SPEED with PAUSE and RESUME sequences");
            Lines.Add("New Feature 16 August 2004 WMV video format now plays");
            Lines.Add("Fix 16 August 2004 pause between jpg files fixed");
            Lines.Add("Fix 27 August 2004 at interrupt alow for complete play by entering aa");
            Lines.Add("New Feature 04 September allow for multiple inputs on prompt #2 seperated by / sep");
            Lines.Add("New Feature 12 September 2004 allow for background job backgrd==c:\\search\\backgrd1\\backgrd1.exe ");
            Lines.Add("New Feature cmd(68) EOF_STOP to allow for background job to stop at eof use with (WW) prompt #2 option");
            Lines.Add("New Feature Cmd(69) HIT_STOP to allow for background job to stop at first match/hit use with (P) prompt #2 option");
            Lines.Add("New Feature Cmd(70) FOREGROUND causes a background job to be given focus over main job");
            Lines.Add("New Feature command==tt8/rand/randa/thumb/ww found on match line will change command settings");
            Lines.Add("Fix 25 October 2004 Small video now play");
            Lines.Add("27 October 2004 Batch file input option see cmd(71)");
            Lines.Add("    differences between to files limit of 10000 lines for now");
            Lines.Add("    differences between to files limit of 20000 lines for now 18-Mar-2007");
            Lines.Add("Minor change force directory date out on gf option 03 November 2004");
            Lines.Add("08 November 2004 create a results.txt file for video pics music see Cmd(72)");
            Lines.Add("18 November 2004 minor New Feature DETAIL, NODETAIL changes cmd(56)");
            Lines.Add("19 November 2004 New feature allows for CONTROL==controlx.txt or controly.txt to switch control files");
            Lines.Add("     ***vip*** change the control files on the fly (very usefull)");
            Lines.Add("     less use for the command== option now");
            Lines.Add("22 November 2004 New feature on CONTROL== if cmd(73) has FILESWITCH then change the input file to element cmd(46)");
            Lines.Add("        in the new control file. ");
            Lines.Add("23 November 2004 New Feature on OPTIONS==OPT=controla.txtOPT=controlb.txtOPT=controlc.txt select 1 2 or 3 ..10 for navigation of presentations");
            Lines.Add("28 November 2004 New Feature add GIF files to list of pictures displayed");
            Lines.Add("06 December 2004 New Feature enter DX at search prompt for yesterday date but not 01");
            Lines.Add("17 December 2004 New Feature enter a V or H at the search prompt will paste in the clipboard just like Ctrl V");
            Lines.Add("19 December 2004 New Feature allow for inset keypad at prompt #1 and prompt #3 ie J=4 K=5 L=6 etc");
            Lines.Add("24 December 2004 New Feature allow for pause after each print line. Rather than all text displayed at once see Cmd(76)");
            Lines.Add("06 January 2005 Minor New Feature, if pause do not display prompt #4 at end of screen add 1 line to max_cnt cmd(1)");
            Lines.Add("07 January 2005 New Feature allow for merge of text data files other than .txt ie .htm .for .frm .cls etc...");
            Lines.Add("10 January 2005 Minor fix re change 06 January 2005 the F option was not continuing now it does");
            Lines.Add("20 August 2005 allow for the last few seconds as a thumbnail using start==299000 and thumb");
            Lines.Add("29 November 2006 instead of pictures allow for URL address to be copied and pasted    ");
            Lines.Add("29 January 2007 anything after http: if no / follows keep all except the http:    ");
            Lines.Add("21 February 2007 fix the Start== not working properly - just initialize a couple values?");
            Lines.Add("11 March 2007 final fix for the start== bug");
            Lines.Add("28 March 2007 remove the favorites from directory it causes me problems");
            Lines.Add("05 February 2008 fix timer. to speed up scrolling text display    ");
            Lines.Add("Version = 19 February 2008 1.50");
            Lines.Add("contact Spectate Swamp Desktop Search stonedan@telusplanet.net");
            Lines.Add("");
        }
    }
}
